const globalEnum = {
  RESPONSE_CODE: {
    success: 200,
    failure: 202, // 失败
    error: 204, // 异常
    handle: 206, // 处理中
    invalidParam: 400, // 参数有误
    noAuth: 401 // 身份过期，重新登录
  },
  YES_NO: {
    yes: { label: '是', value: 1 },
    no: { label: '否', value: 0 }
  },
  COMPONENT: {
    INPUT_TYPE: {
      input: '101', // 文本框
      select: '102', // 下拉框
      cascadeSelect: '1021', // 级联下拉框
      textArea: '103', // 文本域
      password: '104', // 密码框
      num: '105', // 数字框
      count: '1051', // 计数器
      date: '106', // 日期
      dateRange: '107', // 日期范围
      time: '108', // 时间
      image: '201', // 图片
      file: '202', // 文件
      radio: '401', // 单选
      checkBox: '402' // 多选
    },
    TABLE_COLUMN_TYPE: {
      text: '1', // 文本
      html: '2', // html
      image: '3', // 图片
      switch: '4', // 开关
      custom: '5' // 自定义
    }
  },
  BASE: {
    ROLE_TYPE: {
      ADMIN: { label: '管理员', value: 0 },
      NORMAL_USER: { label: '普通用户', value: 1 }
    },
    SEX: {
      MALE: { label: '男', value: 0 },
      FEMALE: { label: '女', value: 1 }
    },
    FINISH_STATUS: {
      FINISHED: { label: '已完成', value: 1 },
      UN_FINISHED: { label: '未完成', value: 0 }
    }
  }
}

export const enumToJson = function (data, target = 'label') {
  let result = Object.keys(data).reduce((obj, key, index) => {
    obj[data[key].value] = data[key][target]
    return obj
  }, {})
  return result
}
export const enumToArr = function (data) {
  let result = Object.keys(data).reduce((arr, key, index) => {
    arr.push({
      label: data[key].label,
      value: data[key].value
    })
    return arr
  }, [])
  return result
}

export default globalEnum
